package com.knife.lov.infra.constants;


import com.knife.lov.domain.entity.KnifeCodeValue;

import java.util.function.Function;

/**
 * @author tianhao.luo@hand-china.com
 * @date 2021年11月16日 1:52 下午
 */
public enum CodeValueSupportType {
    /**
     * 代码维护 含义字段
     * @date 2021/11/16 1:54 下午
     */
    MEANING(KnifeCodeValue::getMeaning),
    /**
     * 代码维护 描述
     * @date 2021/11/16 1:54 下午
     */
    DESCRIPTION(KnifeCodeValue::getDescription),
    /**
     * 代码维护 标记字段
     * @date 2021/11/16 1:54 下午
     */
    TAG(KnifeCodeValue::getTag),

    /**
     * 代码维护 值字段（一般都是通过值获取上面的字段，此处加值是因为用于已有值集了去做过滤的操作）
     */
    VALUE(KnifeCodeValue::getValue)
    ;

    /**
     * 类型
     * @date 2021/11/16 1:52 下午
     */
    public Function<KnifeCodeValue,String> type;


    CodeValueSupportType(Function<KnifeCodeValue, String> type) {
        this.type = type;
    }
}
